分享一个在线Word编辑的jQuery插件

原文地址为: 分享一个在线Word编辑的jQuery插件

在做OA或者工作流程的网站中,常常能够看到一些在线Word编辑进行文档处理的功能,这里我开发了一个在线Word编辑插件并且以此为例。

 

1.NTKO Word在线编辑器介绍:

NTKO的官方网站:http://www.ntko.com/
NTKO OFFICE文档控件是拥有完全自主知识产权的ActiveX控件。使用NTKO Office文档控件,能够在浏览器中直接编辑Word,Excel等Office文档,或者WPS,金山电子表等文档并保存到web服务器。实现文档和电子表格的统一管理。NTKO OFFICE文档控件具有在线编辑,痕迹保留,手写签名,模板套红,安全电子印章[企业版提供],全屏批注,保存为HTML,MHT,PDF文件等办公自动化系统必备的功能。可以运行在PHP,ASP,JSP,C#,VB.NET,DOMINO等各种web编程语言和服务器。

 

2.列出完整的jQuery插件的代码清单:

961ddebeb323a10fe0623af514929fc1.jpe jquery.ntko.js
/*   @author: Leepy
 *  @date:  2010-12
 *  @descript:  ntko word编辑器JQ插件
 
*/  
(
    
function ($) {
        $.ntko 
=  $.ntko  ||  {};

        $.fn.extend(
        {
            
// 文件类型
            fileType: {
                Word: 
" Word.Document " ,
                Excel: 
" Excel.Sheet " ,
                PowerPoint: 
" PowerPoint.Show "
            },
            
// 弹出窗类型
            showDialogType: {
                New: 
0 ,
                Open: 
1 ,
                Save: 
2 ,
                SaveCopy: 
3 ,
                Print: 
4 ,
                PageSetup: 
5 ,
                Properties: 
6
            },
            
// Word信息内容
            wordInfo: {
                Start: 
0 ,
                End: 
0 ,
                Text: 
" NDOFramer "
            },
            
// 表单设置
            formSettings: {
                UploadFileId: 
" EDITFILE " ,
                Data: 
" savetype=1&fileType= " ,
                FileName: 
" demo.doc " ,
                FormId: 
0
            },
            _doc: 
null ,
            _selection: 
null ,
            _range: 
null ,
            
// 初始化插件
            ntko:  function (parameters) {
                parameters 
=  parameters  ||  {};
                
var  ndObj  =   null ;
                
this .each( function (i) {
                    ndObj 
=  $.ntko.init( this , parameters);
                });
                
return  ndObj;
            },
            
// 关闭插件
            close:  function () {
                
this [ 0 ].close();
            },
            
// 打开文档
            open:  function (url) {
                
this [ 0 ].BeginOpenFromURL(url);    // 第二个参数为只读设置
            },
            
// 新建Word文档
            newWord:  function () {
                
this [ 0 ].CreateNew( this .fileType.Word);
            },
            
// 新建Excel文档
            newExcel:  function () {
                
this [ 0 ].CreateNew( this .fileType.Excel);
            },
            
// 新建PowerPoint文档
            newPowerPoint:  function () {
                
this [ 0 ].CreateNew( this .fileType.PowerPoint);
            },
            
// 打开本地文档
            openLocalFile:  function () {
                
this [ 0 ].showdialog( this .showDialogType.Open);
            },
            
// 保存到本地
            saveLocalFile:  function () {
                
this [ 0 ].ActiveDocument.Application.Dialogs( 83 ).Show()
            },
            
// 保存文档,返回是否保存成功
            save:  function (url, parameters) {

                
if  ( typeof  (parameters.formId)  !==   " undefined " )
                    
this .formSettings.FormId  =  parameters.formId;
                
if  ( typeof  (parameters.data)  !==   " undefined " )
                    
this .formSettings.Data  =  parameters.data;

                
var  retHTML  =   this [ 0 ].saveToURL(url,     // 提交到的url地址
                     this .formSettings.UploadFileId,      // 文件域的id,类似<input type=file id=upLoadFile 中的id
                     this .formSettings.Data,              // 与控件一起提交的参数,savetype参数为要保存的文件格式office,html,pdf。filetype参数保存文件类型
                     this .formSettings.FileName,          // 上传文件的名称,类似<input type=file 的value
                     this .formSettings.FormId             // 与控件一起提交的表单id,也可以是form的序列号,这里应该是0.
                );
                
return  retHTML;
            },
            
// 下载远程文件
            downloadFile:  function (url, localPath) {
                
this [ 0 ].DownloadFile(url, localPath);
            },
            
// 插入本地文档
            insertLocalFile:  function () {
                
this [ 0 ].ActiveDocument.Application.Dialogs( 164 ).Show();
            },
            
// 插入文档
            insertFile:  function (url) {
                
this ._doc  =   this [ 0 ].ActiveDocument;
                
this ._doc.Activate();
                
//                 this._doc.Select();
                 //                 this._doc.Application.Selection.Select();

                
this [ 0 ].AddTemplateFromURL(url);
            },
            
// 插入本地图片
            insertLocalImage:  function () {
                
this [ 0 ].ActiveDocument.Application.Dialogs( 163 ).Show();
            },
            
// 插入图片
            insertImage:  function (url, type) {
                
this [ 0 ].InsertFile(url, type  +   8 );
            },
            
// 插入文本
            insertText:  function (text) {
                
this ._doc  =   this [ 0 ].ActiveDocument;
                
this ._doc.Activate();
                
this ._doc.Application.Selection.InsertAfter(text);
            },
            
// 页面设置
            setPageSetup:  function () {
                
this [ 0 ].showdialog( this .showDialogType.PageSetup);
            },
            
// 文档属性设置
            setProperty:  function () {
                
this [ 0 ].showdialog( this .showDialogType.Properties);
            },
            
// 打印
            print:  function () {
                
//                 this[0].PrintOut();
                 this [ 0 ].showdialog( this .showDialogType.Print);
            },
            
// 打印预览
            printPreview:  function () {
                
this [ 0 ].PrintPreview();
            },
            
// 关闭打印预览
            printExit:  function () {
                
this [ 0 ].PrintPreviewExit();
            },
            
// 隐藏工具栏
            hideToolbar:  function () {
                
this [ 0 ].Activate( false );
                
this [ 0 ].Toolbars  =   false ;
            },
            
// 显示工具栏
            showToolbar:  function () {
                
this [ 0 ].Activate( false );
                
this [ 0 ].Toolbars  =   true ;
            },
            
// 隐藏菜单栏
            hideMenubar:  function () {
                
this [ 0 ].Activate( false );
                
this [ 0 ].Menubar  =   false ;
            },
            
// 显示菜单栏
            showMenubar:  function () {
                
this [ 0 ].Activate( false );
                
this [ 0 ].Menubar  =   true ;
            },
            
// 获取或设置窗口高度
            height:  function (arg) {
                
if  ( typeof  (arg)  !==   " undefined " ) {
                    
this .css( " height " ,arg);
                }
                
else  {
                    
return   this .css( " height " ); ;
                }
            },
            
// 获取或设置窗口宽度
            width:  function (arg) {
                
if  ( typeof  (arg)  !==   " undefined " ) {
                    
this .css( " width " , arg);
                }
                
else  {
                    
return   this .css( " width " ); ;
                }
            },
            
// 删除本地路径,如c:\\1.doc
            deleteLocalFile:  function (localPath) {
                
this [ 0 ].DeleteLocalFile(localPath);
            },
            showView: 
function (showViewType) {
                
this [ 0 ].Activate( false );
                
this [ 0 ].ActiveDocument.ActiveWindow.View  =  showViewType;
            },
            
// 添加本地附加文件
             //             addLocalFile: function(fileID,locaPath) {
             //                 this[0].HttpAddPostFile(fileID, locaPath);
             //             },
             //             hostName: function() {
             //                 return this[0].HostName;
             //             },
             //             documentFullName: function() {
             //                 return this[0].DocumentFullName;
             //             },
             //             caption: function() {
             //                 return this[0].Caption;
             //             },
             //             track: function() {
             //                 this[0].SetCurrUserName("liping");
             //                 this[0].SetTrackRevisions(1);
             //             },
             //             showTrack: function() {
             //                 this[0].ShowRevisions(1);
             //                 this[0].ShowView(0);
             //             },
             // 是否只读
            isReadOnly:  function () {
                
return   this [ 0 ].IsReadOnly;
            },
            
// 文档是否已做修改
            isDirty:  function () {
                
return   ! this [ 0 ].ActiveDocument.Saved;
            },
            
// 获取文档所有内容,返回该Word文档内容Json
            range:  function () {
                
this ._doc  =   this [ 0 ].ActiveDocument;
                
this ._doc.Activate();
                
this ._range  =   this ._doc.Range();

                
this .wordInfo.Start  =   this ._range.Start;
                
this .wordInfo.End  =   this ._range.End;
                
this .wordInfo.Text  =   this ._doc.Range( this ._range.Start,  this ._range.End).Text;

                
return   this .wordInfo;
            },
            
// 选中文档所有内容,返回该Word文档内容Json
            select:  function () {
                
this ._doc  =   this [ 0 ].ActiveDocument;
                
this ._doc.Activate();
                
this ._doc.Select();
                
this ._selection  =   this ._doc.Application.Selection;

                
this .wordInfo.Start  =   this ._selection.Start;
                
this .wordInfo.End  =   this ._selection.End;
                
this .wordInfo.Text  =   this ._doc.Range( this ._selection.Start,  this ._selection.End).Text;

                
return   this .wordInfo;
            },
            
// 取消选中内容
            unselect:  function () {
                
if  ( this ._selection  !=   null ) {
                    
this ._selection.Start  =   0 ;
                    
this ._selection.End  =   0 ;
                    
this ._selection  =   null ;
                }
            },
            replace: 
function (text, start, end) {

                
//                 alert(this._doc.Range(start,end).Text);
                 this ._doc.Range(start, end).Text  =  text;
                
//                 alert(this._doc.range(this.wordInfo.Starti,this.wordInfo.End).Text);
            },
            
// 清除文本
            clear:  function () {
                
var  wordDoc  =   this [ 0 ].ActiveDocument;
                wordDoc.Activate();
                wordDoc.Select();
                
var  wordSelection  =  wordDoc.Application.Selection;
                wordDoc.Range(wordSelection.Start, wordSelection.End).Text 
=   "" ;
            }
        });

        $.extend($.ntko,
            {
                settings:
                {
                    folder: 
"" ,
                    width: 
" 700px " ,
                    height: 
" 500px " ,
                    id: 
" OFRAMER_ "   +   new  Date().getTime(),
                    isToolbar: 
true ,
                    isMenubar: 
true ,
                    failed: 
function () { }
                },
                init: 
function (obj, parameters) {
                    
// 赋值参数
                     if  ( typeof  (parameters.folder)  !==   " undefined " )
                        
this .settings.folder  =  parameters.folder;
                    
if  ( typeof  (parameters.width)  !==   " undefined " )
                        
this .settings.width  =  parameters.width;
                    
if  ( typeof  (parameters.height)  !==   " undefined " )
                        
this .settings.height  =  parameters.height;
                    
if  ( typeof  (parameters.id)  !==   " undefined " )
                        
this .settings.id  =  parameters.id;
                    
if  ( typeof  (parameters.isToolbar)  !==   " undefined " )
                        
this .settings.isToolbar  =  parameters.isToolbar;
                    
if  ( typeof  (parameters.isMenubar)  !==   " undefined " )
                        
this .settings.isMenubar  =  parameters.isMenubar;
                    
if  ( typeof  (parameters.failed)  !==   " undefined " )
                        
this .settings.failed  =  parameters.failed  ||  {};

                    
// 构造插件Html
                     this ._createHTML(obj);

                    
var  acxId  =   this .settings.id;
                    
var  acxJQjery  =   null ;
                    
var  failed  =   this .settings.failed;


                    
// 判断是否安装了word编辑器插件
                     try  {

                        document.getElementById(acxId).Close();
                        acxJQjery 
=  $( " # "   +  acxId);
                    }
                    
catch  (e) {
                        failed(e);
                    }

                    
return  acxJQjery;
                },
                
// 构造插件Html
                _createHTML:  function (obj) {
                    $(obj).html(
                        
this ._stringFormat( " <object classid=\ " clsid:A39F1330 - 3322 - 4a1d - 9BF0 - 0BA2BB90E970\ "  codebase=\ " { 0 } / officecontrol.cab#version=5,0,0,6\"" +
                         " id=\ " { 1 }\ "  width=\ " { 2 }\ "  height=\ " { 3 }\ " > "   +
                        
" <param name=\ " wmode\ "  value=\ " transparent\ " > "   +
                        
" <param name=\ " _ExtentX\ "  value=\ " 16960 \ " > "   +
                        
" <param name=\ " _ExtentY\ "  value=\ " 13600 \ " > "   +
                        
" <param name=\ " BorderColor\ "  value=\ " - 2147483632 \ " > "   +
                        
" <param name=\ " BackColor\ "  value=\ " - 2147483643 \ " > "   +
                        
" <param name=\ " ForeColor\ "  value=\ " - 2147483640 \ " > "   +
                        
" <param name=\ " TitlebarColor\ "  value=\ " - 2147483635 \ " > "   +
                        
" <param name=\ " TitlebarTextColor\ "  value=\ " - 2147483634 \ " > "   +
                        
" <param name=\ " BorderStyle\ "  value=\ " 0 \ " > "   +
                        
" <param name=\ " Titlebar\ "  value=\ " 0 \ " > "   +
                        
" <param name=\ " Statusbar\ "  value=\ " 0 \ " > "   +
                        
" <param name=\ " Toolbars\ "  value=\ " { 4 }\ " > "   +
                        
" <param name=\ " Menubar\ "  value=\ " { 5 }\ " > "   +
                        
" <param name=\ " _ExtentX\ "  VALUE=\ " 18071 \ " > "   +
                        
" <param name=\ " _ExtentY\ "  VALUE=\ " 20981 \ " > "   +
                        
" <param name=\ " IsShowToolMenu\ "  VALUE=\ " 1 \ " > "   +
                        
" <param name=\ " IsNoCopy\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " IsHiddenOpenURL\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " MaxUploadSize\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " FileNew\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FileOpen\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FileClose\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FileSave\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FileSaveAs\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FilePrint\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FilePrintPreview\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FilePageSetup\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " FileProperties\ "  VALUE=\ " - 1 \ " > "   +
                        
" <param name=\ " IsStrictNoCopy\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " IsUseUTF8URL\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " MenubarColor\ "  VALUE=\ " - 2147483643 \ " > "   +
                        
" <param name=\ " IsUseControlAgent\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " IsUseUTF8Data\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " IsSaveDocExtention\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " IsDirectConnect\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " SignCursorType\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " IsResetToolbarsOnOpen\ "  VALUE=\ " 0 \ " > "   +
                        
" <param name=\ " IsSaveDataIfHasVDS\ "  VALUE=\ " 0 \ " > "   +
                        
" </object> " ,
                        
this .settings.folder,
                        
this .settings.id,
                        
this .settings.width,
                        
this .settings.height,
                        
this .settings.isToolbar  +   ""   ==   " true "   ?   " 1 "  :  " 0 " ,
                        
this .settings.isMenubar  +   ""   ==   " true "   ?   " 1 "  :  " 0 "
                        ));
                },
                
// string格式化构造器
                _stringFormat:  function (str) {
                    
var  args  =  arguments;
                    
return  str.replace( / \{(\d+)\} / g,
                        
function (m, i) {
                            
return  args[parseInt(i)  +   1 ];
                        });
                }
            }
        );
    }
)(jQuery);

 

3.这里要注意几个问题,首先在保存文档到远程服务器的时候,可以使用aspx页面或者ashx页面去处理。

具体调用的代码:jqObj.save("process.aspx?action=test&data=demo", { formId: "formeditor" });
可以发现我这里有个formId的参数,这个是因为我必须把Word插件必须放在Form标签中,这样在POST数据,也就是文件流的时候有用。
而在process.aspx页面中,的具体代码实现为:

961ddebeb323a10fe0623af514929fc1.jpe 代码
     protected   void  Page_Load( object  sender, EventArgs e)
    {
        Response.ContentEncoding 
=  Encoding.GetEncoding( " GB2312 " );
        
string  action  =  Request.QueryString[ " action " ??   "" ;
        
switch  (action)
        {
            
case   " test " :
                Test();     
// 测试保存数据
                 break ;
        }
    }

    
private   void  Test()
    {
        
string  data  =  Request.QueryString[ " data " ??   "" ;
        HttpFileCollection files 
=  Request.Files;
        
try
        {
            
if  (files.Count  >   0 )
            {
                HttpPostedFile file 
=  files[ 0 ];

                
string  fileName  =  Server.MapPath(String.Format( " ~/output/{0}_{1}.doc " , data, Guid.NewGuid()));

                file.SaveAs(fileName);

                Response.Write(String.Format(
" 保存附件“{0}”成功!\r\n返回测试数据:{1} " , fileName, data));
            }
        }
        
catch
        {
            Response.Write(
" 有异常 " );
        }
    }

其中,一定要记得写Response.ContentEncoding = Encoding.GetEncoding("GB2312");这段代码,如果没有写,返回的中文会出现乱码的情况。我们通过HttpFileCollection files = Request.Files;方式可以取得一个POST文件流。

在第一次使用该插件的时候,首先必须进行安装,您可以通过下载一个Word编辑器插件安装包.rar包,来安装插件,包里面包含相关的批处理操作,大家自己可以试试。

下面演示下DEMO(保存操作大家可以下代码下来看看吧)

 

Word编辑器插件显示区域
初始化插件新建文档打开本地文档打开指定文档保存文档到本地保存文档到Web显示工具栏隐藏工具栏显示普通视图显示页面视图设置窗口高度获取窗口高度设置窗口宽度获取窗口宽度插入指定文本插入本地图片插入本地文档清空文本

jqObj = $("#WordEditor").ntko(
{
folder: "Scripts/",
id: "WordEditorControl",//命名ActiveX对象ID
isToolbar: false,//是否显示工具栏
isMenubar: false,//是否显示菜单栏
width: "710px",
height: "600px"
});
(注:这里 WordEditor 为插件容器的ID)
jqObj.newWord();
jqObj.openLocalFile();
jqObj.open("template/demo.doc");
(注:url可以用 .aspx, .ashx 来替代,采用文件流读取的方式)
jqObj.saveLocalFile();
var result = jqObj.save("process.aspx?action=test&data=demo", { formId: "formeditor" });
(注:其中formId为form的ID)
jqObj.showToolbar();
jqObj.hideToolbar();
jqObj.showView(1);
jqObj.showView(3);
jqObj.height("800");
jqObj.height();
jqObj.width("1000");
jqObj.width();
jqObj.insertText("O(∩_∩)O哈哈哈~");
jqObj.insertLocalImage();
jqObj.insertLocalFile();
jqObj.clear();
源代码下载: OnlineWordEditorDemo.rar

转载请注明本文地址: 分享一个在线Word编辑的jQuery插件
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
版本修改记录: V2.2.0.2修改: 修改了HttpPost相对路径的一些问题。 V2.2.0.0增加: [id(0x00010041), helpstring("Get Rev Index")] HRESULT GetRevCount( [out,retval] long * pbool); [id(0x00010042), helpstring("Get Rev Index Info")] HRESULT GetRevInfo([in] long lIndex, [in] long lType, [out,retval] BSTR* pbool); [id(0x00010043), helpstring("Set Doc Prop")] HRESULT SetValue([in] BSTR strValue, [in] BSTR strName, [out,retval] long* pbool); [id(0x00010044), helpstring("Set Doc Variable")] HRESULT SetDocVariable([in] BSTR strVarName, [in] BSTR strValue,[in] long lOpt, [out,retval] long* pbool); [id(0x00010045), helpstring("Save page To Doc")] HRESULT SetPageAs([in] BSTR strLocalFile, [in] long lPageNum, [in] long lType,[out,retval] long* pbool); ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- LoadDso.js var s = "" s += "" s += "" document.write(s) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- 接口文档: /* 1.新建 */ //新建Word document.all.FramerControl1.CreateNew("Word.Document"); //新建Excel document.all.FramerControl1.CreateNew("Excel.Sheet"); /* 2.打开文件 */ //打开制定的本地文件 document.all.FramerControl1.Open("C:\\TestBook.xls"); //制定用Word来打开c:\plain.txt文件 document.all.FramerControl1.Open("C:\\Plain.txt",false, "Word.Document"); //打开服务器的文件 document.all.FramerControl1.Open "https://secureserver/test/mytest.asp?id=123",true, "Excel.Sheet", "MyUserAccount", "MyPassword"); //打开服务器的文件 document.all.FramerControl1.Open("http://localhost/1.doc", true); /* 3.保存文件 */ //到本地 document.all.FramerControl1.Save("c:\\1.doc",true); //服务器 /*增加Http协议Post上传接口,可以Post一个动态页面(jsp,asp,php...),由动态页面负责解析数据 bool HttpInit(); bool HttpAddPostString(BSTR strName, BSTR strValue); bool HttpAddPostCurrFile(BSTR strFileID, BSTR strFileName); BSTR HttpPost(BSTR bstr); */ //初始化Http引擎 document.all.FramerControl1.HttpInit(); //增加Post变量 document.all.FramerControl1.HttpAddPostString("RecordID","20060102200"); document.all.FramerControl1.HttpAddPostString("UserID","李局长"); //上传打开的文件 document.all.FramerControl1.HttpAddPostCurrFile("FileData", "文档名.doc"); //执行上传动作 document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.asp"); /* 4.修订留痕 */ //进入留痕状态 document.all.FramerControl1.SetTrackRevisions(1); //进入非留痕状态 document.all.FramerControl1.SetTrackRevisions(0); //接受当前修订 document.all.FramerControl1.SetTrackRevisions(4); /* 5.设置当前用户 */ document.all.FramerControl1.SetCurrUserName("张三"); /* 6.设置当前时间(笔迹留痕会显示("Like 2006:02:07 11:11:11") */ document.all.FramerControl1.SetCurrTime("2006:02:07 11:11:11"); /* 7.设置和创建书签,此功能比较强大,设置书签数据、添加书签和添加红头文件就靠他了 SetFieldValue(BSTR strFieldName, BSTR strValue, BSTR strCmdOrSheetName) strFieldName:书签名 strValue:要设置的值 strCmdOrSheetName: 命令 ::ADDMARK:: 添加BookMark ::DELMARK:: 删除这个BookMark ::GETMARK:: 定位到这个BookMark ::FILE:: 插入的是文件 ::JPG:: 插入的是图片 一般来说:WORD中书签是做好的,可以通过此接口把外界数据设置进书签中去。 */ //在当前WORD位置插入标签,标签名为"book1",数值为"test" document.all.FramerControl1.SetFieldValue("book1","test","::ADDMARK::"); //设置书签"Time",数值为"2006-03-16 22:22:22" document.all.FramerControl1.SetFieldValue("Time","2006-03-16 22:22:22",""); //在书签位置"hongtou",插入红头文件"http://222.222.222.222/hongtou1.doc" 这样,红头就自动插进去了 document.all.FramerControl1.SetFieldValue("hongtou","http://222.222.222.222/hongtou1.doc","::FILE::"); /* 8.设置菜单显示情况 BOOL SetMenuDisplay(long lMenuFlag) lMenuFlag为以下数值的组合 #define MNU_NEW 0x01 #define MNU_OPEN 0x02 #define MNU_CLOSE 0x04 #define MNU_SAVE 0x08 #define MNU_SAVEAS 0x16 #define MNU_PGSETUP 0x64 #define MNU_PRINT 0x256 #define MNU_PROPS 0x32 #define MNU_PRINTPV 0x126 */ //只有“新建”菜单可用 document.all.FramerControl1..SetMenuDisplay(1); //只有“打开”菜单可用 document.all.FramerControl1.SetMenuDisplay(2); //只有“打开”和“新建”菜单可用 document.all.FramerControl1.SetMenuDisplay(3); /* 9.保护文档和解保护文档 lProOrUn:1:保护文档;0:解除保护 lProType: wdNoProtection = -1, wdAllowOnlyRevisions = 0, wdAllowOnlyComments = 1, wdAllowOnlyFormFields = 2 strProPWD:密码 */ //完全保护文档,密码为"pwd" document.all.FramerControl1.ProtectDoc(1,1,"pwd"); //解除文档保护 document.all.FramerControl1.ProtectDoc(0,1,"pwd"); /* 10.显示或隐藏修订内容 ShowRevisions(long nNewValue) nNewValue = 0 则隐藏修订 = 1 则显示修订 */ //显示修订留痕 document.all.FramerControl1.ShowRevisions(1); //隐藏修订留痕 document.all.FramerControl1.ShowRevisions(0); /* 11.插入合并文件, strFieldPath 文件路径,可以是http,ftp的路径 pPos = 0 //当前鼠标位置 1;文件开头 2;文件末尾 pPos的第4位为1的时候,代表插入的是图片 InSertFile(BSTR strFieldPath, long lPos) */ //文件头部插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",1); //文件尾部插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",2); //当前光标位置插入文件 document.all.FramerControl1.InSertFile("http://XX.com/XX.doc",0); //文件头部插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",9); //文件尾部插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",10); //当前光标位置插入图片 document.all.FramerControl1.InSertFile("http://XX.com/XX.jpg",8); /* 0x31. 文档另存为 HRESULT SaveAs([in] VARIANT strFileName, [in] VARIANT dwFileFormat, [out,retval] long* pbool); 参数: strFileName:文件本地路径,如c:\\11.doc dwFileFormat: 文件格式 dwFileFormat的数值为: Excel: Type enum XlFileFormat { xlAddIn = 18, xlCSV = 6, xlCSVMac = 22, xlCSVMSDOS = 24, xlCSVWindows = 23, xlDBF2 = 7, xlDBF3 = 8, xlDBF4 = 11, xlDIF = 9, xlExcel2 = 16, xlExcel2FarEast = 27, xlExcel3 = 29, xlExcel4 = 33, xlExcel5 = 39, xlExcel7 = 39, xlExcel9795 = 43, xlExcel4Workbook = 35, xlIntlAddIn = 26, xlIntlMacro = 25, xlWorkbookNormal = -4143, xlSYLK = 2, xlTemplate = 17, xlCurrentPlatformText = -4158, xlTextMac = 19, xlTextMSDOS = 21, xlTextPrinter = 36, xlTextWindows = 20, xlWJ2WD1 = 14, xlWK1 = 5, xlWK1ALL = 31, xlWK1FMT = 30, xlWK3 = 15, xlWK4 = 38, xlWK3FM3 = 32, xlWKS = 4, xlWorks2FarEast = 28, xlWQ1 = 34, xlWJ3 = 40, xlWJ3FJ3 = 41, xlUnicodeText = 42, xlHtml = 44 }; Word: Type enum WdSaveFormat { wdFormatDocument = 0, wdFormatTemplate = 1, wdFormatText = 2, wdFormatTextLineBreaks = 3, wdFormatDOSText = 4, wdFormatDOSTextLineBreaks = 5, wdFormatRTF = 6, wdFormatUnicodeText = 7, wdFormatEncodedText = 7, wdFormatHTML = 8 }; PPT: enum PpSaveAsFileType { ppSaveAsPresentation = 1, ppSaveAsPowerPoint7 = 2, ppSaveAsPowerPoint4 = 3, ppSaveAsPowerPoint3 = 4, ppSaveAsTemplate = 5, ppSaveAsRTF = 6, ppSaveAsShow = 7, ppSaveAsAddIn = 8, ppSaveAsPowerPoint4FarEast = 10, ppSaveAsDefault = 11, ppSaveAsHTML = 12, ppSaveAsHTMLv3 = 13, ppSaveAsHTMLDual = 14, ppSaveAsMetaFile = 15, ppSaveAsGIF = 16, ppSaveAsJPG = 17, ppSaveAsPNG = 18, ppSaveAsBMP = 19 }; */ /* 0x32. 删除本地文件 HRESULT DeleteLocalFile([in] BSTR strFilePath); 参数: strFileName:文件本地路径,如c:\\11.doc */ /* 0x33.创建临时文件 HRESULT GetTempFilePath([out,retval] BSTR* strValue); 返回: 临时文件的路径地址。使用完后,用DeleteLocalFile 删除 */ /* 0x34.设置文档显示模式 HRESULT ShowView([in] long dwViewType, [out,retval] long * pbool); dwViewType的可取值为: enum WdViewType { wdNormalView = 1, wdOutlineView = 2, wdPrintView = 3, wdPrintPreview = 4, wdMasterView = 5, //这个是大纲 wdWebView = 6 }; */ //大纲模式 document.all.FramerControl1.ShowView(5); /* 0x39:下载远程文件 HRESULT DownloadFile( [in] BSTR strRemoteFile, [in] BSTR strLocalFile, [out,retval] BSTR* strValue); 参数: strRemoteFile:远程路径地址,http or Ftp strLocalFile: 本地保存地址,if strLocalFile == NULL then Create Temp File and return TempFile's Path */ /* 0x40:增加Http上传时候的,附加其他文件 HRESULT HttpAddPostFile([in] BSTR strFileID, [in] BSTR strFileName, [out,retval] long* pbool); 参数: strFileID:文件的ID,供服务器端页面解析 strFileName: 本地文件地址 */ /* 0x41,0x42.获取详细的修订信息。 GetRevCount( [out,retval] long * pbool); GetRevInfo([in] long lIndex, [in] long lType, [out,retval] BSTR* pbool); 例子如下 */ var vCount; vCount = document.all.FramerControl1.GetRevCount(); alert(vCount); var vOpt = 0; var vDate; for(var i=1; i<= vCount; i++){ vOpt = document.all.FramerControl1.GetRevInfo(i,2); if("1" == vOpt){ vOpt = "插入"; }else if("2" == vOpt){ vOpt = "删除"; }else{ vOpt = "未知操作"; } vDate = new String(document.all.FramerControl1.GetRevInfo(i,1)); vDate = parseFloat(vDate); alert(vDate); dateObj = new Date(vDate); alert(dateObj.getYear() + "年" + dateObj.getMonth() + 1 + "月" + dateObj.getDate() +"日" + dateObj.getHours() +"时" + dateObj.getMinutes() +"分" + dateObj.getSeconds() +"秒" ); alert("用户:"+document.all.FramerControl1.GetRevInfo(i,0) + "\r\n操作:" + vOpt + "\r\n内容:" + document.all.FramerControl1.GetRevInfo(i,3)); } /* 0x43.设置基本信息: HRESULT SetValue([in] BSTR strValue, [in] BSTR strName, [out,retval] long* pbool); 1.设置文件只读密码 SetValue("password","::DOCPROP:PassWord"); 2.设置文件修改密码 SetValue("password","::DOCPROP:WritePW"); 返回值: 0 正确 -1:不支持此命令,请确定您的第二个参数没有传错 -127:异常 */ //设置文件只读密码 document.all.FramerControl1.SetValue("password","::DOCPROP:PassWord"); //设置文件修改密码 document.all.FramerControl1.SetValue("password","::DOCPROP:WritePW"); /* 0x44.设置文档变量,这个很少能用到 HRESULT SetDocVariable([in] BSTR strVarName, [in] BSTR strValue,[in] long lOpt, [out,retval] long* pbool); strVarName: 变量名 strVlaue:变量值 lOpt: 操作类型, 按位 第一位为1: 表示update域关联的 第二位为1: 表示如果没有这个变量则添加 第三位为1: 未来支持 return: 0:OK -127:异常 */ /* 0x45: 分页保存 HRESULT SetPageAs([in] BSTR strLocalFile, [in] long lPageNum, [in] long lType,[out,retval] long* pbool); strLocalFile:本地路径 lPageNum:页数 */

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值